共计 910 个字符,预计需要花费 3 分钟才能阅读完成。
设计模式
一个问题通常有 n 种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。
设计模式有 20 多种,对应 20 多种软件开发中会遇到的问题。
单例模式
确保一个类只有一个对象。
写法:
- 把类的构造器私有
- 定义一个类变量记住类的一个对象
- 定义一个类方法,返回对象
Python 实现
a.py 文件:
class Tools:
pass
tool = Tools()
b.py 文件:
from a import tool
t1 = tool
t2 = tool
print(t1)
print(t2)
工厂模式
当需要大量创建一个类的实例的时候,可以使用工厂模式。即,从原生的使用类的构造去创建对象的形式,迁移到,基于工厂提供的方法去创建对象的形式。
Python 实现
class Person:
pass
class Teacher(Person):
pass
class Student(Person):
pass
class Factory:
def get_person(self, p_type):
if p_type == "t":
return Teacher()
elif p_type == "s":
return Student()
factory = Factory()
teacher = factory.get_person("t")
student = factory.get_person("s")
模板模式
当功能内部一部分实现确定,一部分实现不确定,这时可以把不确定的部分暴露出去,让子类去实现。编写一个抽象父类,父类提供了多个子类的通用方法,并把一个或多个方法留给其子类实现,就是模板模式。
from abc import ABC, abstractmethod
import time
class Template(ABC):
@abstractmethod
def job(self):
pass
def cal_time(self):
start = time.time()
self.job()
end = time.time()
print(f"耗时 {end-start} 秒")
class AA(Template):
def job(self):
n = 0
for i in range(1000_000):
n += i
aa = AA()
aa.cal_time()
正文完